﻿using System.Collections.Generic;
using ActivitiesControl.Domain.Model.Entities;
using ActivitiesControl.Domain.Model.VOs;

namespace ActivitiesControl.Domain.Services
{
	public interface IManageActivityService
	{
		IEnumerable<Customer> GetCustomersForForm(int resourceId);
		IEnumerable<Project> GetProjectsForForm(int customerId);
		IEnumerable<Resource> GetResourcesForForm(int resourceId);
		IEnumerable<string> GetActivityTypesForForm(int customerId);

		IEnumerable<Customer> GetCustomersForSearchFilter(int resourceId);
		IEnumerable<Project> GetProjectsForSearchFilter(int customerId);

		void SaveActivity(
			int? activityId,
			string description,
			string activityType,
			int effortHours,
			Date date,
			int projectId,
			int resourceId);

		void ExcludeActivity(
			int activityId);

		IEnumerable<Activity> GetActivities(
			int resourceId, 
			Date begin, 
			Date end, 
			int customerId, 
			int projectId);

		Activity GetActivityById(int id);
	}
}
